﻿
// Calculator.h: PROJECT_NAME 应用程序的主头文件
//

#pragma once

#ifndef __AFXWIN_H__
	#error "在包含此文件之前包含 'pch.h' 以生成 PCH"
#endif

#include "resource.h"		// 主符号


// CCalculatorApp:
// 有关此类的实现，请参阅 Calculator.cpp
//

class CCalculatorApp : public CWinApp
{
public:
	CCalculatorApp();

// 重写
public:
	virtual BOOL InitInstance();

// 实现

	DECLARE_MESSAGE_MAP()
};
///////////////////////////////////////////////////////////
#define maxsize 100
#define maxsizen 100
struct SqStack {//字符栈
	    char data[maxsize];
	    int top;

};
struct SqStackN {//数字栈
	    double data[maxsizen];
	    int top;

};

//栈操作函数—字符
 void initStack(SqStack * &s);
 bool Push(SqStack * &s, char e);
 bool Pop(SqStack * &s, char& e);
 bool GetTop(SqStack * s, char& e);
 void DestroyStack(SqStack * &s);
 bool StackEmpty(SqStack * s);
 //栈操作函数—数字，重载
 void initStack(SqStackN * &s);
 bool Push(SqStackN * &s, double e);
 bool Pop(SqStackN * &s, double& e);
 bool GetTop(SqStackN * s, double& e);
 void DestroyStack(SqStackN * &s);
 bool StackEmpty(SqStackN * s);
//检查输入错误
 int wrong(char* WExp);
 //后缀表达式转换函数
 void change(char* exp, char postexp[]);
 //计算后缀表达式函数
 double calculate(char* postexp);

/// <summary>
/// ///////////////////////////////////////////////
/// </summary>
extern CCalculatorApp theApp;
